package com.android.gtravelling;

import java.util.ArrayList;
import java.util.List;
import com.android.dto.HotelsDTO;
import com.android.dto.ProvincesDTO;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnLongClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class HotelTravel extends Activity {
	private ListView mainListView;
	private static ArrayList<HotelsDTO> listHotels;
	private ArrayAdapter<HotelsDTO> listAdapter;
	private WebserviceCaller WebCaller;
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.list_province);

		mainListView = (ListView) findViewById(R.id.lv_province);
		WebCaller = new WebserviceCaller();
		listHotels = WebCaller.selectAllHotels();
		listAdapter = new HotelsDTOArrayAdapter(this, listHotels);
		mainListView.setAdapter(listAdapter);
		mainListView.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
        			int position, long id) {
				int ids=listHotels.get(position).getId();
        		Intent i = new Intent (view.getContext(),Description.class);
        		i.putExtra("detail", String.valueOf(ids));
        		startActivity(i);
        		}
		});

	}
	public class HotelsDTOViewHolder {
		private ImageView imgView;
		

		public ImageView getImgView() {
			return imgView;
		}

		private TextView textView;
		private TextView textView1;

		public HotelsDTOViewHolder(ImageView imgView, TextView textView,
				TextView textView1) {
			this.imgView = imgView;
			this.textView = textView;
			this.textView1 = textView1;
		}

		public TextView getTextView() {
			return textView;
		}

		public TextView getTextView1() {
			return this.textView1;
		}
	}
	
	public class HotelsDTOArrayAdapter extends ArrayAdapter<HotelsDTO> {
		//layoutInflater Lớp này được sử dụng để khởi tạo bố trí tập tin XML thành các đối tượng View tương ứng của nó.
		private LayoutInflater inflater;

		public HotelsDTOArrayAdapter(Context context,
				List<HotelsDTO> planetList) {
			super(context, R.layout.row_province, R.id.tv_province_title,
					planetList);
			// Cache the LayoutInflate to avoid asking for a new one each time.
			inflater = LayoutInflater.from(context);
		}
		
		@Override
		public View getView(int position, View convertView, ViewGroup parent) {

			HotelsDTO hot = (HotelsDTO) this.getItem(position);

			// The child views in each row.
			ImageView imgView;
			TextView textView;
			TextView textView1;
			// Create a new row view
			if (convertView == null) {
				//inflater.inflate thêm một hệ thống phân cấp View mới từ tài nguyên xml cụ thể
				convertView = inflater.inflate(R.layout.row_province, null);
				// Find the child views.thêm 
				imgView=(ImageView)convertView.findViewById(R.id.imgRowContent);
				textView = (TextView) convertView
						.findViewById(R.id.tv_province_title);

				textView1 = (TextView) convertView
						.findViewById(R.id.tv_province_Descrip);

				
				//Thẻ này cũng có thể được sử dụng để lưu trữ dữ liệu trong một 
				//lần xem mà không cần đến một cấu trúc dữ liệu.
				convertView.setTag(new HotelsDTOViewHolder(imgView,textView,
						textView1));
			}
			// Reuse existing row view
			else {
				// Because we use a ViewHolder, we avoid having to call
				// findViewById().
				HotelsDTOViewHolder viewHolder = (HotelsDTOViewHolder) convertView
						.getTag();
				imgView=viewHolder.getImgView();
				textView = viewHolder.getTextView();
				textView1 = viewHolder.getTextView1();
			}

			// Display planet data
			imgView.setImageResource(R.drawable.cui_bap);
			textView.setText(hot.getName());
			textView1.setText(hot.getAddress());

			return convertView;
		}

	}
	

}
